repeat with index=1 to the number of words in mytext
set myword=word index of mytext
set mychar=char 1 of myword
set mycharval=chartonum(mychar)
if mycharval>96 and mycharval<96+27 then
set mychar=numtochar(mycharval-32)
put mychar into char 1 of myword
put myword into word index of mytext
end if
end repeat
return mytext
end
on UnTitleCase mytext
repeat with index=1 to the number of words in mytext
set myword=word index of mytext
set mychar=char 1 of myword
set mycharval=chartonum(mychar)
if mycharval>64 and mycharval<64+27 then
set mychar=numtochar(mycharval+32)
put mychar into char 1 of myword
put myword into word index of mytext
end if
end repeat
return mytext
end
on UpperCase mytext
repeat with index=1 to the number of chars in mytext
set mychar=char index of mytext
set mycharval=chartonum(mychar)
if mycharval>96 and mycharval<96+27 then
set mychar=numtochar(mycharval-32)
put mychar into char index of mytext
end if
end repeat
return mytext
end
on LowerCase mytext
repeat with index=1 to the number of chars in mytext
set mychar=char index of mytext
set mycharval=chartonum(mychar)
if mycharval>64 and mycharval<64+27 then
set mychar=numtochar(mycharval+32)
put mychar into char index of mytext
end if
end repeat
return mytext
end
on delpush newdelimiter
global delimiterlist
if not(listP(delimiterlist)) then
set delimiterlist=[]
end if
add delimiterlist,the itemdelimiter
set the itemdelimiter=newdelimiter
end
on delpop
global delimiterlist
if not (listp(delimiterlist)) then
set delimiterlist=[]
end if
if count(delimiterlist)>0 then
set the itemdelimiter=getlast(delimiterlist)
deleteat delimiterlist,count(delimiterlist)
else
set the itemdelimiter=","
end if
end
on replace basetext,oldtext,newtext
set buffer=""
set pos=offset(oldtext,basetext)
repeat while pos>0
if pos>1 then
set buffer=buffer&(char 1 to pos-1 of basetext)&newtext
delete char 1 to pos+length(oldtext)-1 of basetext
else
set buffer=buffer&(newtext)
delete char 1 to length(oldtext) of basetext
end if
set pos=offset(oldtext,basetext)
end repeat
set buffer=buffer&basetext
return buffer
end
on symbol mystr
if listp(mystr) then
set mylist=mystr
set endlist=[:]
repeat with mystr in mylist
set punclist=[" "]
repeat with punc in punclist
set mystr=replace(mystr,punc,"_")
end repeat
set mysymbol=value("#"&mystr)
addprop endlist,mysymbol,0
end repeat
return endlist
else
set punclist=[" "]
repeat with punc in punclist
set mystr=replace(mystr,punc,"_")
end repeat
set mysymbol=value("#"&mystr)
end if
return mysymbol
end
on listToText mylist,delimiter
set delimiter=default(the itemdelimiter,delimiter)
set buffer=""
repeat with entry in mylist
set buffer=buffer&entry&delimiter
end repeat
set dellength=length(delimiter)
delete char (length(buffer)-dellength+1) to length(buffer) of buffer
return buffer
end
on textToList mytext,delimiter
set delimiter=default(the itemdelimiter,delimiter)
delpush delimiter
set baselist=[]
repeat with index=1 to the number of items in mytext
add baselist,item index of mytext
end repeat
delpop
return baselist
end
on filltemplate templatelist,textline,mydelimiter
set delimiter=default(the itemdelimiter,mydelimiter)
delpush(delimiter)
if the number of items in textline<>count(templatelist) then
set error="The number of items in the line starting '"&(char 1 to 20 of textline)&"...' doesn't match the template count (currently "&count(templatelist)&" items)."
return error
end if
set filledlist=[:]
repeat with index=1 to the number of items in textline